import java.util.Stack;

public class question_71 {

}
class Solution_71 {
    //这是一道关于栈的题目
    public String simplifyPath(String path) {
        //首先将给的路径划分成每一个单独的部分
        String[] arr = path.split("/");
        //注意这样分割的话如有有//相邻出现的或者///这种情况，分割之后会出现空字符串的，在/和/之间
        //引用栈类，将该栈的类型设计为string
        Stack<String> s = new Stack<>();
        for (String temp :
                arr) {
            if ("..".equals(temp)) {
                if (!s.isEmpty()) {//遇到这个且栈不为空，则要返回上一级，即栈顶的元素出栈
                    s.pop();
                }
            } else if (temp.length() > 0 && !(".".equals(temp))) {
                s.push(temp);//不是空串并且不是'.'，则直接进栈
            }
        }
        StringBuffer re=new StringBuffer();
        Object[] objects = s.toArray();
        String err[]=new String[objects.length];
        for (int i = 0; i < objects.length; i++) {
            err[i]=(String) objects[i];
        }

        if(err.length==0){
            re.append("/");
        }else{
            for (int i = 0; i < err.length; i++) {
                re.append("/");
                re.append(err[i]);
            }
        }
        return re.toString();
    }
}